package com.mezz.bones.framework.mybatis.dynamic.util;

import com.baomidou.dynamic.datasource.toolkit.DynamicDataSourceContextHolder;

public class DynamicDataSourceHelper {

    /**
     * 切换到指定数据源（支持嵌套）
     *
     * @param dataSourceKey 数据源名称
     */
    public static void switchDataSource(String dataSourceKey) {
        DynamicDataSourceContextHolder.push(dataSourceKey); // 压栈新数据源
    }

    /**
     * 恢复上一个数据源（嵌套场景）
     */
    public static void restorePreviousDataSource() {
        DynamicDataSourceContextHolder.poll(); // 弹出当前数据源，返回上一个

    }

    /**
     * 强制恢复默认数据源（清空栈）
     */
    public static void restoreDefaultDataSource() {
        DynamicDataSourceContextHolder.clear(); // 清空栈，返回primary数据源
    }

    /**
     * 获取当前数据源名称
     *
     * @return 当前数据源名称（栈顶值）
     */
    public static String getCurrentDataSource() {
        return DynamicDataSourceContextHolder.peek(); // 查看栈顶不弹出[6]
    }
}